import Cookie from "js-cookie";
export default {
  state: {
    collapse: false, //控制菜单的展开还是收起
    tabList: [
      {
        path: "/",
        name: "home",
        label: "首页",
        icon: "s-home",
        url: "Home/Home",
      },
    ], //面包屑的数据
    // 菜单数据
    menu: [],
  },
  mutations: {
    // 修改collapse
    ChangeCollapse(state) {
      state.collapse = !state.collapse;
    },
    // 更新面包屑的数据
    updateBread(state, val) {
      // 判断要添加的数据是否为首页
      if (val.path !== "/home") {
        const Index = state.tabList.findIndex((item) => item.path === val.path);
        if (Index === -1) {
          // 要添加的数据在tabList里面不存在
          state.tabList.push(val);
        }
      }
    },
    // 点击tabs删除tabList数据
    delBread(state, item) {
      const index = state.tabList.findIndex((val) => val.name === item.name);
      state.tabList.splice(index, 1);
    },
    // 修改菜单数据
    setMenu(state, val) {
      state.menu = val;
      // 将菜单数据存入cookie中实现持久化
      Cookie.set("menu", JSON.stringify(val));
    },
    // 动态注册路由
    addMenu(state, router) {
      // 判断cookie中是否存了menu
      if (!Cookie.get("menu")) return;
      const menu = JSON.parse(Cookie.get("menu"));
      state.menu = menu;

      // 组装路由数据
      let menuArry = [];
      menu.forEach((item) => {
        // 判断是否存在children
        if (item.children) {
          item.children = item.children.map((item) => {
            item.component = () => import(`../views/${item.url}`);
            return item;
          });
          menuArry.push(...item.children);
        } else {
          item.component = () => import(`../views/${item.url}`);
          menuArry.push(item);
        }
      });
      console.log(menuArry, "menuArry");
      // 动态注册路由
      menuArry.forEach((item) => {
        router.addRoute("main", item);
      });
    },
  },
};
